/*
 * chat.c - t4/t5
 * A. Justo & Tiago Cavaco
 */


#include "chat.h"

int clientes;
int filas[MAXCLIENTS];

struct myMsg m;

char* recebeMensagem (int fila, int tipo_msg)
{
	ssize_t result = msgrcv(fila, &m, MAXSIZE, tipo_msg, 0);
	if (result == -1)
	{
		perror("Erro na recepcao da mensagem.\n");
		exit(1);
	}
	return m.msgText;
}

void enviaMensagemPrivada (int nrCliente, char* text)
{
	struct myMsg msg;
	msg.msgType = SEND_BY_SERVER;
	strcpy(msg.msgText, text);
	if (msgsnd(filas[nrCliente], &msg, MAXSIZE, 0) < 0)
	{
		perror("Erro no envio da mensagem.\n");
		exit(1);
	}
}

void enviaMensagem (char* text)
{
	int j;
	for (j = 1; j <= clientes; j++)
		enviaMensagemPrivada(j, text);
}

void enviaMensagemParaServidor (int fila, char* text)
{
	struct myMsg msg;
	strcpy(msg.msgText, text);
	msg.msgType = SEND_BY_CLIENT;
	if (msgsnd(fila, &msg, MAXSIZE, 0) < 0)
	{
		perror("Erro no envio da mensagem.\n");
		exit(1);
	}
	printf("Mensagem enviada para o servidor.\n");
}
